\hypertarget{classCLSBEmbeddingEngine}{
\section{\-C\-L\-S\-B\-Embedding\-Engine \-Class \-Reference}
\label{classCLSBEmbeddingEngine}\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}}
}


implementation of the \-L\-S\-B embedding algorithm.  




{\ttfamily \#include $<$lsb\-\_\-embedding\-\_\-engine.\-h$>$}

\-Inheritance diagram for \-C\-L\-S\-B\-Embedding\-Engine\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classCLSBEmbeddingEngine}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCLSBEmbeddingEngine_a240c65a1595a74a98dca9893b1346453}{\-C\-L\-S\-B\-Embedding\-Engine} (\hyperlink{classIBitSource}{\-I\-Bit\-Source} $\ast$p\-Bit\-Source)
\item 
virtual \hyperlink{classCLSBEmbeddingEngine_aaa8f7c2df92f62dc2ce5a158d2a68f1d}{$\sim$\-C\-L\-S\-B\-Embedding\-Engine} ()
\item 
virtual std\-::string \hyperlink{classCLSBEmbeddingEngine_a81bd5d82390a7870fefbfdde94cd474b}{get\-Ini\-Section\-Name} () const 
\begin{DoxyCompactList}\small\item\em get the abbreviation for the properties reader \end{DoxyCompactList}\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a4d508780f5f727e820baa98a5da1fa97}{embed\-Into\-Samples} (int8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)
\begin{DoxyCompactList}\small\item\em hook call for glue code \end{DoxyCompactList}\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_ae132792ad4cf59e3a0b966f92fd4b43b}{embed\-Into\-Samples} (uint8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a53aafd5283ecaddd90c0763eeab89cf9}{embed\-Into\-Samples} (int16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_af6e8a395a148d9847721654e6540efe2}{embed\-Into\-Samples} (uint16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a4108f20e47567007441ba8943f5e4b1b}{embed\-Into\-Samples} (double $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_acaebe471ecb2ca61fefa93c623effcee}{extract\-From\-Samples} (int8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)
\begin{DoxyCompactList}\small\item\em hook call for glue code \end{DoxyCompactList}\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a70d5c13e20918537ca5fc41e2b189174}{extract\-From\-Samples} (uint8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a08705592c817d8b2854d80752f594a34}{extract\-From\-Samples} (int16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a4c62d1ed64e8acb27781d7765e4fa0eb}{extract\-From\-Samples} (uint16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_afd9e25289d4571a53e55ef0c8648eb09}{extract\-From\-Samples} (double $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)
\item 
virtual void \hyperlink{classCLSBEmbeddingEngine_a0890214dd225aa09ba755459d686c2ce}{shutdown} ()
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_aca6150436ba357982b39ab7a56e6b0b7}{change\-Settings} ()
\item 
virtual int \hyperlink{classCLSBEmbeddingEngine_a2e474f9ad7431541adc5d810e9d800ff}{get\-Num\-Required\-Samples} ()
\begin{DoxyCompactList}\small\item\em determine number of processible samples \end{DoxyCompactList}\item 
virtual \*
\hyperlink{namespaceNAudioFormats_a0f5b4d2b68d4ba2b34bac333d4f5f808}{\-N\-Audio\-Formats\-::\-E\-Samples\-Format} \hyperlink{classCLSBEmbeddingEngine_a882686345156024eea079420bc780345}{get\-Samples\-Format} ()
\begin{DoxyCompactList}\small\item\em determine whether samples should be converted to double before handed over to an embedding engine \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{\-Static \-Protected \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const int \hyperlink{classCLSBEmbeddingEngine_a8ff9a68b1f49a1f04d0e331adcae3040}{s\-Num\-Required\-Samples}
\item 
static const \*
\hyperlink{namespaceNAudioFormats_a0f5b4d2b68d4ba2b34bac333d4f5f808}{\-N\-Audio\-Formats\-::\-E\-Samples\-Format} \hyperlink{classCLSBEmbeddingEngine_a5a215f24725fb16672a28cf322318483}{s\-Samples\-Format}
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCLSBEmbeddingEngine_a0e1defa3a3a854d6277ea048559a3603}{\-C\-L\-S\-B\-Embedding\-Engine} (const \hyperlink{classCLSBEmbeddingEngine}{\-C\-L\-S\-B\-Embedding\-Engine} \&)
\item 
\hyperlink{classCLSBEmbeddingEngine}{\-C\-L\-S\-B\-Embedding\-Engine} \& \hyperlink{classCLSBEmbeddingEngine_a9f72c2a67b247ee092e05975e94a2c6a}{operator=} (const \hyperlink{classCLSBEmbeddingEngine}{\-C\-L\-S\-B\-Embedding\-Engine} \&)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIBitSource}{\-I\-Bit\-Source} $\ast$ \hyperlink{classCLSBEmbeddingEngine_a35ee265095371d1ae8a90b16285390b5}{m\-Bit\-Source}
\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCLSBEmbeddingEngine_a8d13c922777588ab77c6079a76149f06}{s\-Ini\-Section\-Name}
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
implementation of the \-L\-S\-B embedding algorithm. 

\begin{DoxyAuthor}{\-Author}
gpitsch and rpoisel 
\end{DoxyAuthor}


\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCLSBEmbeddingEngine_a240c65a1595a74a98dca9893b1346453}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{\-C\-L\-S\-B\-Embedding\-Engine}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-L\-S\-B\-Embedding\-Engine\-::\-C\-L\-S\-B\-Embedding\-Engine (
\begin{DoxyParamCaption}
\item[{{\bf \-I\-Bit\-Source} $\ast$}]{p\-Bit\-Source}
\end{DoxyParamCaption}
)}}
\label{classCLSBEmbeddingEngine_a240c65a1595a74a98dca9893b1346453}

\begin{DoxyParams}{\-Parameters}
{\em p\-Bit\-Source} & data source/sink for stego payload \\
\hline
\end{DoxyParams}
\hypertarget{classCLSBEmbeddingEngine_aaa8f7c2df92f62dc2ce5a158d2a68f1d}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!$\sim$\-C\-L\-S\-B\-Embedding\-Engine@{$\sim$\-C\-L\-S\-B\-Embedding\-Engine}}
\index{$\sim$\-C\-L\-S\-B\-Embedding\-Engine@{$\sim$\-C\-L\-S\-B\-Embedding\-Engine}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{$\sim$\-C\-L\-S\-B\-Embedding\-Engine}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-L\-S\-B\-Embedding\-Engine\-::$\sim$\-C\-L\-S\-B\-Embedding\-Engine (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_aaa8f7c2df92f62dc2ce5a158d2a68f1d}
\hypertarget{classCLSBEmbeddingEngine_a0e1defa3a3a854d6277ea048559a3603}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{\-C\-L\-S\-B\-Embedding\-Engine}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-L\-S\-B\-Embedding\-Engine\-::\-C\-L\-S\-B\-Embedding\-Engine (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-L\-S\-B\-Embedding\-Engine} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a0e1defa3a3a854d6277ea048559a3603}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCLSBEmbeddingEngine_aca6150436ba357982b39ab7a56e6b0b7}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!change\-Settings@{change\-Settings}}
\index{change\-Settings@{change\-Settings}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{change\-Settings}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-C\-L\-S\-B\-Embedding\-Engine\-::change\-Settings (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_aca6150436ba357982b39ab7a56e6b0b7}
called by the protocol engine upon settings change (e.\-g. change of embedding parameters) 

\-Implements \hyperlink{classIEmbeddingEngine_acfc1adf5ae7e28332f825c6f2ae056d2}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_aeef339ae1eef5123296c82ecb41c86d9}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_ad7153a1344e4fca0b855851e0c346596}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a4d508780f5f727e820baa98a5da1fa97}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{int8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a4d508780f5f727e820baa98a5da1fa97}


hook call for glue code 

called by the voip phone application to embed data into the sample before sending a packet \begin{DoxyNote}{\-Note}
this implicitly reads the data to be embedded from the \hyperlink{classIStegIO}{\-I\-Steg\-I\-O}
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Samples} & samples to be modified \\
\hline
{\em p\-Count} & number of samples \\
\hline
{\em p\-Leak} & number of samples not used between last and current call\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
$>$0 for success, 0 for \-E\-O\-F and $<$0 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classIEmbeddingEngine_a0d4c7dd4a9cef7524a016831042094fe}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a198b502e3a71e21c7907961697772f9b}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a54803d6a4f5d537ca5065271623ab4d5}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_ae132792ad4cf59e3a0b966f92fd4b43b}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{uint8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_ae132792ad4cf59e3a0b966f92fd4b43b}


\-Implements \hyperlink{classIEmbeddingEngine_a508ca9bd6283cd40250a3cbee9a79778}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a35b0c811b3f2cda63759997e6176284d}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_ad71f0b7abb7d3a4f00fbed8e9ae1330f}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a53aafd5283ecaddd90c0763eeab89cf9}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{int16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a53aafd5283ecaddd90c0763eeab89cf9}


\-Implements \hyperlink{classIEmbeddingEngine_aab1d65b5129a308098acab5468e51e3f}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a1c6a14a4f5ff80770cc6554ed96f995b}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_aac2dc51c8a5c42fb3b013fb265ea546b}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_af6e8a395a148d9847721654e6540efe2}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{uint16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_af6e8a395a148d9847721654e6540efe2}


\-Implements \hyperlink{classIEmbeddingEngine_a12b321a2caf8b08d4435e936bd7fa446}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a387b9f36c456685b132461d26682d3c8}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a1168da3c69053df590dc9f0c08c4f16d}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a4108f20e47567007441ba8943f5e4b1b}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-C\-L\-S\-B\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a4108f20e47567007441ba8943f5e4b1b}


\-Implements \hyperlink{classIEmbeddingEngine_aa778b0012f0b6d907c7284ce367d16ee}{\-I\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_acaebe471ecb2ca61fefa93c623effcee}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{int8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_acaebe471ecb2ca61fefa93c623effcee}


hook call for glue code 

called by the voip phone application to extract data from the sample after receiving a packet \begin{DoxyNote}{\-Note}
this implicitly writes the extracted data to the \hyperlink{classIStegIO}{\-I\-Steg\-I\-O}
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Samples} & samples to be modified \\
\hline
{\em p\-Count} & number of samples \\
\hline
{\em p\-Leak} & number of samples not used between last and current call \\
\hline
{\em p\-In\-Buffer} & how many samples are left in the buffer. \-If no extra thread is executed for extraction this parameter is always 0.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 for success, $>$0 for success and discard of samples for next call, $<$0 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classIEmbeddingEngine_afdd4eb903fce7b7ec14ed171c0df64d7}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_af3fc1af5cec85b52f1166e6eeeecf918}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_ad2f2ad1c4af1efd19d7f9f324e5068b4}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a70d5c13e20918537ca5fc41e2b189174}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{uint8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a70d5c13e20918537ca5fc41e2b189174}


\-Implements \hyperlink{classIEmbeddingEngine_a952b08b4f543a8bdd3ca53e46c16b087}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a4518078ba33c8b225f2658b05b398201}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a64761d9c4036823d4a38e8e054c7acd9}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a08705592c817d8b2854d80752f594a34}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{int16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a08705592c817d8b2854d80752f594a34}


\-Implements \hyperlink{classIEmbeddingEngine_a476e58ee9839c3d29cf308b056d2b0d3}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a313caadd6577e4fb04b386b8bc5d9fc0}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a68c5bc5b00170e6ac949b5fb7b23321d}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a4c62d1ed64e8acb27781d7765e4fa0eb}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-L\-S\-B\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{uint16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a4c62d1ed64e8acb27781d7765e4fa0eb}


\-Implements \hyperlink{classIEmbeddingEngine_af077ceeacbe720f5b588950c4140a096}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a391b8f0784a29df9c3834f5cd4e6d51a}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_af0b434b1ee99a668bf715f3dde97dcbe}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_afd9e25289d4571a53e55ef0c8648eb09}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-C\-L\-S\-B\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_afd9e25289d4571a53e55ef0c8648eb09}


\-Implements \hyperlink{classIEmbeddingEngine_a5d7b877de16fb5e8479ce83f75b88ae1}{\-I\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a81bd5d82390a7870fefbfdde94cd474b}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!get\-Ini\-Section\-Name@{get\-Ini\-Section\-Name}}
\index{get\-Ini\-Section\-Name@{get\-Ini\-Section\-Name}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{get\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string \-C\-L\-S\-B\-Embedding\-Engine\-::get\-Ini\-Section\-Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a81bd5d82390a7870fefbfdde94cd474b}


get the abbreviation for the properties reader 

\begin{DoxyReturn}{\-Returns}
the abbreviation for the properties reader 
\end{DoxyReturn}


\-Implements \hyperlink{classIEmbeddingEngine_a58c6fd3df13135b91956c42b2f3519a6}{\-I\-Embedding\-Engine}.



\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_a0cb2379747fdf07f5468ec53394bc002}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a96e54e0cb255a0cc5715ad7199256c76}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a2e474f9ad7431541adc5d810e9d800ff}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!get\-Num\-Required\-Samples@{get\-Num\-Required\-Samples}}
\index{get\-Num\-Required\-Samples@{get\-Num\-Required\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{get\-Num\-Required\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-C\-L\-S\-B\-Embedding\-Engine\-::get\-Num\-Required\-Samples (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a2e474f9ad7431541adc5d810e9d800ff}


determine number of processible samples 

called by the samples distributor to determine the number of samples which can be processed by the embedding engine; this can be a dynamic value or constant (e.\-g. for \-L\-S\-B, or echo-\/hiding) all the time

\begin{DoxyReturn}{\-Returns}
the number of processible samples 
\end{DoxyReturn}


\-Implements \hyperlink{classIEmbeddingEngine_aaeb36f7905d85f9df65b7ba565419888}{\-I\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a882686345156024eea079420bc780345}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!get\-Samples\-Format@{get\-Samples\-Format}}
\index{get\-Samples\-Format@{get\-Samples\-Format}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{get\-Samples\-Format}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf \-N\-Audio\-Formats\-::\-E\-Samples\-Format} \-C\-L\-S\-B\-Embedding\-Engine\-::get\-Samples\-Format (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a882686345156024eea079420bc780345}


determine whether samples should be converted to double before handed over to an embedding engine 

\begin{DoxyReturn}{\-Returns}
\-O\-R\-I\-G\-I\-N\-A\-L or \-M\-O\-D\-I\-F\-I\-E\-D 
\end{DoxyReturn}


\-Implements \hyperlink{classIEmbeddingEngine_af1afa2bc32d63b5505a27da584c4a474}{\-I\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a9f72c2a67b247ee092e05975e94a2c6a}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!operator=@{operator=}}
\index{operator=@{operator=}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-L\-S\-B\-Embedding\-Engine}\& \-C\-L\-S\-B\-Embedding\-Engine\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-L\-S\-B\-Embedding\-Engine} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a9f72c2a67b247ee092e05975e94a2c6a}
\hypertarget{classCLSBEmbeddingEngine_a0890214dd225aa09ba755459d686c2ce}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void \-C\-L\-S\-B\-Embedding\-Engine\-::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a0890214dd225aa09ba755459d686c2ce}
called from the engine factory before destroying the handle 

\-Implements \hyperlink{classIEmbeddingEngine_a17d63e5e13b91c9121444833cf5de626}{\-I\-Embedding\-Engine}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCLSBEmbeddingEngine_a35ee265095371d1ae8a90b16285390b5}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!m\-Bit\-Source@{m\-Bit\-Source}}
\index{m\-Bit\-Source@{m\-Bit\-Source}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{m\-Bit\-Source}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-I\-Bit\-Source}$\ast$ {\bf \-C\-L\-S\-B\-Embedding\-Engine\-::m\-Bit\-Source}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a35ee265095371d1ae8a90b16285390b5}
\hypertarget{classCLSBEmbeddingEngine_a8d13c922777588ab77c6079a76149f06}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}}
\index{s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{s\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-L\-S\-B\-Embedding\-Engine\-::s\-Ini\-Section\-Name}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a8d13c922777588ab77c6079a76149f06}


\-Reimplemented in \hyperlink{classCDumpEmbeddingEngine_aee14cda612a65898bace3532a3334434}{\-C\-Dump\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_afc64519350828e8ab0d31ca4940f302c}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classCLSBEmbeddingEngine_a8ff9a68b1f49a1f04d0e331adcae3040}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!s\-Num\-Required\-Samples@{s\-Num\-Required\-Samples}}
\index{s\-Num\-Required\-Samples@{s\-Num\-Required\-Samples}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{s\-Num\-Required\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}const int {\bf \-C\-L\-S\-B\-Embedding\-Engine\-::s\-Num\-Required\-Samples}\hspace{0.3cm}{\ttfamily  \mbox{[}static, protected\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a8ff9a68b1f49a1f04d0e331adcae3040}
\hypertarget{classCLSBEmbeddingEngine_a5a215f24725fb16672a28cf322318483}{
\index{\-C\-L\-S\-B\-Embedding\-Engine@{\-C\-L\-S\-B\-Embedding\-Engine}!s\-Samples\-Format@{s\-Samples\-Format}}
\index{s\-Samples\-Format@{s\-Samples\-Format}!CLSBEmbeddingEngine@{\-C\-L\-S\-B\-Embedding\-Engine}}
\subsubsection[{s\-Samples\-Format}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf \-N\-Audio\-Formats\-::\-E\-Samples\-Format} {\bf \-C\-L\-S\-B\-Embedding\-Engine\-::s\-Samples\-Format}\hspace{0.3cm}{\ttfamily  \mbox{[}static, protected\mbox{]}}}}
\label{classCLSBEmbeddingEngine_a5a215f24725fb16672a28cf322318483}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{lsb__embedding__engine_8h}{lsb\-\_\-embedding\-\_\-engine.\-h}\item 
\hyperlink{lsb__embedding__engine_8cxx}{lsb\-\_\-embedding\-\_\-engine.\-cxx}\end{DoxyCompactItemize}
